/**
 *  学习目标：Todos 案例
 *    1. 类组件改造成函数组件
 *    2. 拆分函数组件(头部，主体，底部)
 *    3. 初始化列表数据，并渲染到主体组件中
 *    4. 主体 - 根据 id 删除数据
 *    5. 主体 - 根据 id 更新完成状态
 *    6. 底部 - 删除已完成任务
 *    7. 底部 - 计算剩余任务数量
 *    8. 底部 - 高亮切换效果
 *    9. 底部 - 切换显示列表(全部显示/未完成/已完成)
 *    10. 头部 - 受控组件，获取数据，按回车键，新增待办任务
 *    11. 主体 - 计算全选状态，切换全选状态
 *    学习完 useEffect() 后，再实现以下两个功能
 *    12. 组件挂载时 - 获取本地存储数据
 *    13. 数据更新时 - 设置本地存储数据
 */
import './styles/base.css'
import './styles/index.css'

export default function App() {
  return (
    <section className='todoapp'>
      {/* 头部 */}
      <Header />
      {/* 主体 */}
      <Main />
      {/* 底部 */}
      <Footer />
    </section>
  )
}

function Header() {
  return (
    <header className='header'>
      <h1>todos</h1>
      <input className='new-todo' placeholder='What needs to be done?' autoFocus />
    </header>
  )
}

function Main() {
  return (
    <section className='main'>
      <input className='toggle-all' type='checkbox' />
      <label htmlFor='toggle-all'>Mark all as complete</label>
      <ul className='todo-list'>
        <li className='completed'>
          <div className='view'>
            <input className='toggle' type='checkbox' />
            <label>吃饭</label>
            <button className='destroy'></button>
          </div>
          <input className='edit' />
        </li>
        <li className=''>
          <div className='view'>
            <input className='toggle' type='checkbox' />
            <label>睡觉</label>
            <button className='destroy'></button>
          </div>
          <input className='edit' />
        </li>
      </ul>
    </section>
  )
}

function Footer() {
  return (
    <footer className='footer'>
      <span className='todo-count'>
        <strong>1</strong> item left
      </span>
      <ul className='filters'>
        <li>
          <a className='all selected' href='#/'>
            All
          </a>
        </li>
        <li>
          <a className='active' href='#/active'>
            Active
          </a>
        </li>
        <li>
          <a className='completed' href='#/completed'>
            Completed
          </a>
        </li>
      </ul>
      <button className='clear-completed'>Clear completed</button>
    </footer>
  )
}
